/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CONTROLES;

import MODELOS.Sucursal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Administrador
 */
public class ControlSucursal{

    private ArrayList<Sucursal> listaSuc = new ArrayList<Sucursal>();


    public ControlSucursal(){}

    public void guardarSucursal(Sucursal e) {
        Conexion conection = new Conexion();

        try {

            Connection conectado = conection.getConexion();
            String sql = "INSERT INTO SUCURSAL(id_sucursal,nombre_suc,direccion_suc,ubicacion_suc,telefono_suc,fax_suc,email_suc,nit_sucursal,departamento)VALUES "+ "(nextval('sucursal_id_sucursal_seq'),'"+e.getNombreSuc().toUpperCase()+"','"+e.getDireccionSuc().toUpperCase()+"','"+e.getUbicacionSuc().toUpperCase()+"','"+e.getTelefonoSuc()+"','"+e.getFaxSuc()+"','"+e.getEmailSuc()+"','"+e.getNitSucursal()+"','"+e.getDpto()+"');"
                    + "CREATE SEQUENCE SUCURSAL_"+e.getNombreSuc().replaceAll(" ", "_")+" INCREMENT 1 MINVALUE 1  MAXVALUE 9223372036854775807 START 1 CACHE 1;";
            PreparedStatement ps = conectado.prepareStatement(sql);
            ps.executeUpdate();
            ps.close();
        }catch (SQLException ex) {
            System.out.println("Ocurrio un error al registrar la sucursal: " +ex.getLocalizedMessage());
        } 
  }


    public ArrayList<Sucursal> getListaSuc() {

        listaSuc = getSucursales();

        return listaSuc;
    }

    public String[] nombresSuc()
    {
        String lista[]=new String[getSucursales().size()];

         //ControlEmpleado c = new ControlEmpleado();

        for(int i=0; i<getListaSuc().size(); i++ )
            lista[i]=getListaSuc().get(i).getIdSucursal()+"-"+getListaSuc().get(i).getNombreSuc().toString();

    return lista;
        
    }

    public ArrayList<Sucursal> getSucursales(){
       Conexion conection = new Conexion();
       ArrayList<Sucursal> res = new ArrayList<Sucursal>();
       Sucursal emplea;
    try{
            Connection conectado = conection.getConexion();

            PreparedStatement psc = conectado.prepareStatement("select * from SUCURSAL ORDER BY id_sucursal ASC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){
                emplea= new Sucursal();
                emplea.setIdSucursal(respEmp.getInt(1));
//                emplea.setIdEmpresa(respEmp.getInt(2));
                emplea.setNombreSuc(respEmp.getString(2));
                emplea.setDireccionSuc(respEmp.getString(3));
                emplea.setUbicacionSuc(respEmp.getString(4));
                emplea.setTelefonoSuc(respEmp.getInt(5));
                emplea.setFaxSuc(respEmp.getInt(6));
                emplea.setEmailSuc(respEmp.getString(7));
                emplea.setNitSucursal(respEmp.getLong(8));
                emplea.setDpto(respEmp.getString(9));
                
                res.add(emplea);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar lista de sucursales " + e.getLocalizedMessage());
        }

return res;
}

    public String dameNomSucursal(int idSucursal) {
        Conexion conection = new Conexion();
        String emplea="";
    try {
            Connection conectado = conection.getConexion();
            PreparedStatement psA = conectado.prepareStatement("select nombre_suc from sucursal where id_sucursal ='"+idSucursal+"'");
            ResultSet respA = psA.executeQuery();
            if(respA.next()){
                emplea=respA.getString(1);



            }

        } catch (SQLException ex) {
            System.out.println("Error buscar sucursal por su id : "+ex.getLocalizedMessage());
        }



    return emplea;
    }

     public Sucursal obtenerSucursal(int idSucursal) {
        Conexion conection = new Conexion();
        Sucursal emplea = new Sucursal();
    try {
            Connection conectado = conection.getConexion();
            PreparedStatement psA = conectado.prepareStatement("select * from sucursal where id_sucursal ='"+idSucursal+"'");
            ResultSet respA = psA.executeQuery();
            if(respA.next()){
                
                emplea.setIdSucursal(respA.getInt(1));
                emplea.setNombreSuc(respA.getString(2));
                emplea.setDireccionSuc(respA.getString(3));
                emplea.setUbicacionSuc(respA.getString(4));
                emplea.setTelefonoSuc(respA.getInt(5));
                emplea.setFaxSuc(respA.getInt(6));
                emplea.setEmailSuc(respA.getString(7));
                emplea.setNitSucursal(respA.getLong(8));
                emplea.setDpto(respA.getString(9));



            }

        } catch (SQLException ex) {
            System.out.println("Error buscar la sucursal por id : "+ex.getLocalizedMessage());
        }



    return emplea;
    }

}
